package com.ihr360.payroll.service.payroll.convertor;

import com.google.common.collect.Lists;
import com.ihr360.commons.lang.CollectionUtils;
import com.ihr360.commons.model.IConvertor;
import com.ihr360.payroll.config.SalaryTaxRuleEntity;
import com.ihr360.payroll.model.dto.salary.tax.SalaryTaxRule;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
public class SalaryTaxRuleConvertor implements IConvertor<SalaryTaxRuleEntity, SalaryTaxRule> {

    @Autowired
    private SalaryTaxConvertor salaryTaxConvertor;

    @Override
    public SalaryTaxRule convertEntityToDto(SalaryTaxRuleEntity entity) {
        return null;
    }

    @Override
    public SalaryTaxRuleEntity convertDtoToEntity(SalaryTaxRule dto) {
        if (dto == null) {
            return null;
        }
        SalaryTaxRuleEntity entity = new SalaryTaxRuleEntity();
        BeanUtils.copyProperties(dto, entity);
        //注意死循环
//        SalaryTax salaryTax = dto.getSalaryTax();
//        if (salaryTax != null) {
//            entity.setSalaryTax(salaryTaxConvertor.convertDtoToEntity(salaryTax));
//        }
        return entity;
    }

    public List<SalaryTaxRuleEntity> convertDtosToEntities(List<SalaryTaxRule> dtos) {
        if (CollectionUtils.isEmpty(dtos)) {
            return Lists.newArrayList();
        }
        List<SalaryTaxRuleEntity> entities = Lists.newArrayListWithCapacity(dtos.size());
        dtos.forEach(dto -> {
            entities.add(convertDtoToEntity(dto));
        });
        return entities;
    }

}
